Graphics and image devices are widely used to render 2-dimensional (2-D) and 3-dimensional (3-D) images for various applications, such as video games, graphics programs, computer-aided design (CAD) applications, simulation and visualization tools, imaging, and the like. Audio devices may be used in conjunction with these devices to provide sound or even potentially to process speech.
Graphics processors, display processors, audio processors, or multi-media processors used in these devices may be configured to perform parallel and/or vector processing of data. General purpose CPU's (central processing units) with or without SIMD (single instruction, multiple data) extensions may also be configured to process data. In vector processing, a single instruction operates on multiple data items at the same time. In parallel processing, instructions operate on one data item at a time. In the field of graphics processing, processors often perform instructions on pixel data. Pixel data describes various attributes of a pixel, including the color of the pixel in a particular color space, and oftentimes, the transparency (alpha), of the pixel that is to be displayed, printed, and/or stored.
Common color spaces for pixel data include RGB (Red-Green-Blue), YUV (Luma-Blue Luma Difference-Red Luma Difference), YCbCr (Luma-Blue Chroma Difference-Red Chroma Difference), and CMYK (Cyan-Magenta-Yellow-Black), among others. Color spaces do not typically represent color as a single value, but rather represent color with multiple channels of information, also known as a tuple of color components. As one example, the RGB color space includes three channels that respectively describe the red, green and blue content for a particular pixel. Likewise, the YCbCr color space describes the luma, blue chroma difference, and red chroma difference values for a particular color. Certain higher-order color spaces may also be implemented in certain cases and with certain technologies. For example, some printers may now use six or eight inks, which may require six to eight different color channels to drive operation.
Processors that process pixel data typically do so using parallel processing. As such, each channel of pixel data is typically processed separately in different processing pipelines. However, the pattern in which such multi-channel pixel data is stored in memory or other devices may vary from application to application.